<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SFMT: SFMT.h File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">SFMT
   &#160;<span id="projectnumber">1.4</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">SFMT.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom number generator using C structure.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;inttypes.h&gt;</code><br/>
<code>#include &quot;SFMT-params.h&quot;</code><br/>
</div>
<p><a href="_s_f_m_t_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="union_w128___t.html">W128_T</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">128-bit data structure  <a href="union_w128___t.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SFMT internal state.  <a href="struct_s_f_m_t___t.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr class="memitem:ac582131d7a7c8ee57e73180d1714f9d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">PRIu64</a>&#160;&#160;&#160;&quot;llu&quot;</td></tr>
<tr class="memitem:aba38357387a474f439428dee1984fc5a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">PRIx64</a>&#160;&#160;&#160;&quot;llx&quot;</td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ab1ee414cba9ca0f33a3716e7a92c2b79"><td class="memItemLeft" align="right" valign="top">typedef union <a class="el" href="union_w128___t.html">W128_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a></td></tr>
<tr class="memdesc:ab1ee414cba9ca0f33a3716e7a92c2b79"><td class="mdescLeft">&#160;</td><td class="mdescRight">128-bit data type  <a href="#ab1ee414cba9ca0f33a3716e7a92c2b79"></a><br/></td></tr>
<tr class="memitem:a786e4a6ba82d3cb2f62241d6351d973f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a04f57c1e9a6b5c0c52ac774a50da6c7e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">sfmt_fill_array32</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint32_t *array, int size)</td></tr>
<tr class="memdesc:a04f57c1e9a6b5c0c52ac774a50da6c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates pseudorandom 32-bit integers in the specified array[] by one call.  <a href="#a04f57c1e9a6b5c0c52ac774a50da6c7e"></a><br/></td></tr>
<tr class="memitem:ab9d6542bb167426bd35591afd32136af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ab9d6542bb167426bd35591afd32136af">sfmt_fill_array64</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint64_t *array, int size)</td></tr>
<tr class="memdesc:ab9d6542bb167426bd35591afd32136af"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates pseudorandom 64-bit integers in the specified array[] by one call.  <a href="#ab9d6542bb167426bd35591afd32136af"></a><br/></td></tr>
<tr class="memitem:a674d820db863265836ef9cb203aa4130"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a674d820db863265836ef9cb203aa4130">sfmt_init_gen_rand</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint32_t seed)</td></tr>
<tr class="memdesc:a674d820db863265836ef9cb203aa4130"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array with a 32-bit integer seed.  <a href="#a674d820db863265836ef9cb203aa4130"></a><br/></td></tr>
<tr class="memitem:a28f357a6d2a9cd74cec3c9d458e58475"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint32_t *init_key, int key_length)</td></tr>
<tr class="memdesc:a28f357a6d2a9cd74cec3c9d458e58475"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array, with an array of 32-bit integers used as the seeds.  <a href="#a28f357a6d2a9cd74cec3c9d458e58475"></a><br/></td></tr>
<tr class="memitem:a6454ae6ac89dbaa2fd5db79be99dd408"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a6454ae6ac89dbaa2fd5db79be99dd408">sfmt_get_idstring</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a6454ae6ac89dbaa2fd5db79be99dd408"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the identification string.  <a href="#a6454ae6ac89dbaa2fd5db79be99dd408"></a><br/></td></tr>
<tr class="memitem:a4a0698581c5ce4fdb269f814fd438a5f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a4a0698581c5ce4fdb269f814fd438a5f">sfmt_get_min_array_size32</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a4a0698581c5ce4fdb269f814fd438a5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the minimum size of array used for <b>fill_array32()</b> function.  <a href="#a4a0698581c5ce4fdb269f814fd438a5f"></a><br/></td></tr>
<tr class="memitem:a22ebb5ab2cf7e28d2bcf21ffffcc7e39"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">sfmt_get_min_array_size64</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a22ebb5ab2cf7e28d2bcf21ffffcc7e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the minimum size of array used for <b>fill_array64()</b> function.  <a href="#a22ebb5ab2cf7e28d2bcf21ffffcc7e39"></a><br/></td></tr>
<tr class="memitem:a2224d63688cbf9b1f50c01d5d9bb7f29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a2224d63688cbf9b1f50c01d5d9bb7f29"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the internal state array with pseudorandom integers.  <a href="#a2224d63688cbf9b1f50c01d5d9bb7f29"></a><br/></td></tr>
<tr class="memitem:a320ad3d4b201c8b5525871b5d4c9d110"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a320ad3d4b201c8b5525871b5d4c9d110"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates and returns 32-bit pseudorandom number.  <a href="#a320ad3d4b201c8b5525871b5d4c9d110"></a><br/></td></tr>
<tr class="memitem:ae99df9ac1b48be1370492d448504b717"><td class="memItemLeft" align="right" valign="top">static uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:ae99df9ac1b48be1370492d448504b717"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates and returns 64-bit pseudorandom number.  <a href="#ae99df9ac1b48be1370492d448504b717"></a><br/></td></tr>
<tr class="memitem:a29ed9f4537b9e617737dc32585636000"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">sfmt_to_real1</a> (uint32_t v)</td></tr>
<tr class="memdesc:a29ed9f4537b9e617737dc32585636000"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts an unsigned 32-bit number to a double on [0,1]-real-interval.  <a href="#a29ed9f4537b9e617737dc32585636000"></a><br/></td></tr>
<tr class="memitem:ac8f1ec46b29372bbd2dd311ce2887ebf"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:ac8f1ec46b29372bbd2dd311ce2887ebf"><td class="mdescLeft">&#160;</td><td class="mdescRight">generates a random number on [0,1]-real-interval  <a href="#ac8f1ec46b29372bbd2dd311ce2887ebf"></a><br/></td></tr>
<tr class="memitem:a4caa47d7e18ec69f30a56f9390fda3e7"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">sfmt_to_real2</a> (uint32_t v)</td></tr>
<tr class="memdesc:a4caa47d7e18ec69f30a56f9390fda3e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts an unsigned 32-bit integer to a double on [0,1)-real-interval.  <a href="#a4caa47d7e18ec69f30a56f9390fda3e7"></a><br/></td></tr>
<tr class="memitem:a3e68d5e08ce1841614dbd93cc4cfa251"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a3e68d5e08ce1841614dbd93cc4cfa251"><td class="mdescLeft">&#160;</td><td class="mdescRight">generates a random number on [0,1)-real-interval  <a href="#a3e68d5e08ce1841614dbd93cc4cfa251"></a><br/></td></tr>
<tr class="memitem:a48d93f237f52b2a149ab0d683527aa9c"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">sfmt_to_real3</a> (uint32_t v)</td></tr>
<tr class="memdesc:a48d93f237f52b2a149ab0d683527aa9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts an unsigned 32-bit integer to a double on (0,1)-real-interval.  <a href="#a48d93f237f52b2a149ab0d683527aa9c"></a><br/></td></tr>
<tr class="memitem:a89e02c7333287e1ca650c38983ab6dae"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a89e02c7333287e1ca650c38983ab6dae"><td class="mdescLeft">&#160;</td><td class="mdescRight">generates a random number on (0,1)-real-interval  <a href="#a89e02c7333287e1ca650c38983ab6dae"></a><br/></td></tr>
<tr class="memitem:abd5780d6ef5e9836a63e555e9f7da940"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53</a> (uint64_t v)</td></tr>
<tr class="memdesc:abd5780d6ef5e9836a63e555e9f7da940"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution.  <a href="#abd5780d6ef5e9836a63e555e9f7da940"></a><br/></td></tr>
<tr class="memitem:aa5b6472af111363e237ae022f6a9ef48"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:aa5b6472af111363e237ae022f6a9ef48"><td class="mdescLeft">&#160;</td><td class="mdescRight">generates a random number on [0,1) with 53-bit resolution  <a href="#aa5b6472af111363e237ae022f6a9ef48"></a><br/></td></tr>
<tr class="memitem:a686d9c9d19ba29e0890abd2127f46339"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix</a> (uint32_t x, uint32_t y)</td></tr>
<tr class="memdesc:a686d9c9d19ba29e0890abd2127f46339"><td class="mdescLeft">&#160;</td><td class="mdescRight">generates a random number on [0,1) with 53-bit resolution from two 32 bit integers  <a href="#a686d9c9d19ba29e0890abd2127f46339"></a><br/></td></tr>
<tr class="memitem:a6b92b2435f0182f5fa19f94bb7986d74"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
<tr class="memdesc:a6b92b2435f0182f5fa19f94bb7986d74"><td class="mdescLeft">&#160;</td><td class="mdescRight">generates a random number on [0,1) with 53-bit resolution using two 32bit integers.  <a href="#a6b92b2435f0182f5fa19f94bb7986d74"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom number generator using C structure. </p>
<dl class="section author"><dt>Author:</dt><dd>Mutsuo Saito (Hiroshima University) </dd>
<dd>
Makoto Matsumoto (The University of Tokyo)</dd></dl>
<p>Copyright (C) 2006, 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto, Hiroshima University and The University of Tokyo. All rights reserved.</p>
<p>The 3-clause BSD License is applied to this software, see LICENSE.txt</p>
<dl class="section note"><dt>Note:</dt><dd>We assume that your system has inttypes.h. If your system doesn't have inttypes.h, you have to typedef uint32_t and uint64_t, and you have to define PRIu64 and PRIx64 in this file as follows: <div class="fragment"><pre class="fragment"> typedef unsigned int uint32_t
 typedef unsigned long long uint64_t
 #define PRIu64 "llu"
 #define PRIx64 "llx"
</pre></div> uint32_t must be exactly 32-bit unsigned integer type (no more, no less), and uint64_t must be exactly 64-bit unsigned integer type. PRIu64 and PRIx64 are used for printf function to print 64-bit unsigned int and 64-bit unsigned int in hexadecimal format. </dd></dl>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="ac582131d7a7c8ee57e73180d1714f9d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">PRIu64</a>&#160;&#160;&#160;&quot;llu&quot;</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aba38357387a474f439428dee1984fc5a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">PRIx64</a>&#160;&#160;&#160;&quot;llx&quot;</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a786e4a6ba82d3cb2f62241d6351d973f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a> <a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab1ee414cba9ca0f33a3716e7a92c2b79"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef union <a class="el" href="union_w128___t.html">W128_T</a> <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>128-bit data type </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a04f57c1e9a6b5c0c52ac774a50da6c7e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">sfmt_fill_array32</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates pseudorandom 32-bit integers in the specified array[] by one call. </p>
<p>The number of pseudorandom integers is specified by the argument size, which must be at least 624 and a multiple of four. The generation by this function is much faster than the following gen_rand function.</p>
<p>For initialization, init_gen_rand or init_by_array must be called before the first call of this function. This function can not be used after calling gen_rand function, without initialization.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
    <tr><td class="paramname">array</td><td>an array where pseudorandom 32-bit integers are filled by this function. The pointer to the array must be <b>"aligned"</b> (namely, must be a multiple of 16) in the SIMD version, since it refers to the address of a 128-bit integer. In the standard C version, the pointer is arbitrary.</td></tr>
    <tr><td class="paramname">size</td><td>the number of 32-bit pseudorandom integers to be generated. size must be a multiple of 4, and greater than or equal to (MEXP / 128 + 1) * 4.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note:</dt><dd><b>memalign</b> or <b>posix_memalign</b> is available to get aligned memory. Mac OSX doesn't have these functions, but <b>malloc</b> of OSX returns the pointer to the aligned memory block. </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array()</a>, and <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>.</p>

</div>
</div>
<a class="anchor" id="ab9d6542bb167426bd35591afd32136af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#ab9d6542bb167426bd35591afd32136af">sfmt_fill_array64</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t *&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates pseudorandom 64-bit integers in the specified array[] by one call. </p>
<p>The number of pseudorandom integers is specified by the argument size, which must be at least 312 and a multiple of two. The generation by this function is much faster than the following gen_rand function.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state For initialization, init_gen_rand or init_by_array must be called before the first call of this function. This function can not be used after calling gen_rand function, without initialization.</td></tr>
    <tr><td class="paramname">array</td><td>an array where pseudorandom 64-bit integers are filled by this function. The pointer to the array must be "aligned" (namely, must be a multiple of 16) in the SIMD version, since it refers to the address of a 128-bit integer. In the standard C version, the pointer is arbitrary.</td></tr>
    <tr><td class="paramname">size</td><td>the number of 64-bit pseudorandom integers to be generated. size must be a multiple of 2, and greater than or equal to (MEXP / 128 + 1) * 2</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note:</dt><dd><b>memalign</b> or <b>posix_memalign</b> is available to get aligned memory. Mac OSX doesn't have these functions, but <b>malloc</b> of OSX returns the pointer to the aligned memory block. </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array()</a>, and <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>.</p>

</div>
</div>
<a class="anchor" id="a2224d63688cbf9b1f50c01d5d9bb7f29"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the internal state array with pseudorandom integers. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>.</p>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, and <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</a>.</p>

</div>
</div>
<a class="anchor" id="ac8f1ec46b29372bbd2dd311ce2887ebf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>generates a random number on [0,1]-real-interval </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1]-real-interval </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, and <a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">sfmt_to_real1()</a>.</p>

</div>
</div>
<a class="anchor" id="a3e68d5e08ce1841614dbd93cc4cfa251"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>generates a random number on [0,1)-real-interval </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1)-real-interval </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, and <a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">sfmt_to_real2()</a>.</p>

</div>
</div>
<a class="anchor" id="a89e02c7333287e1ca650c38983ab6dae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>generates a random number on (0,1)-real-interval </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on (0,1)-real-interval </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, and <a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">sfmt_to_real3()</a>.</p>

</div>
</div>
<a class="anchor" id="aa5b6472af111363e237ae022f6a9ef48"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>generates a random number on [0,1) with 53-bit resolution </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1) with 53-bit resolution </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</a>, and <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53()</a>.</p>

</div>
</div>
<a class="anchor" id="a6b92b2435f0182f5fa19f94bb7986d74"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>generates a random number on [0,1) with 53-bit resolution using two 32bit integers. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1) with 53-bit resolution </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, and <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix()</a>.</p>

</div>
</div>
<a class="anchor" id="a320ad3d4b201c8b5525871b5d4c9d110"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates and returns 32-bit pseudorandom number. </p>
<p>init_gen_rand or init_by_array must be called before this function. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>32-bit pseudorandom number </dd></dl>

<p>References <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>, <a class="el" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, and <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>.</p>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1()</a>, <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2()</a>, <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3()</a>, and <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix()</a>.</p>

</div>
</div>
<a class="anchor" id="ae99df9ac1b48be1370492d448504b717"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint64_t <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates and returns 64-bit pseudorandom number. </p>
<p>init_gen_rand or init_by_array must be called before this function. The function gen_rand64 should not be called after gen_rand32, unless an initialization is again executed. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>64-bit pseudorandom number </dd></dl>

<p>References <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>, <a class="el" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>, and <a class="el" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">W128_T::u64</a>.</p>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53()</a>.</p>

</div>
</div>
<a class="anchor" id="a6454ae6ac89dbaa2fd5db79be99dd408"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="_s_f_m_t_8c.html#a6454ae6ac89dbaa2fd5db79be99dd408">sfmt_get_idstring</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the identification string. </p>
<p>The string shows the word size, the Mersenne exponent, and all parameters of this generator. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>.</p>

</div>
</div>
<a class="anchor" id="a4a0698581c5ce4fdb269f814fd438a5f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_f_m_t_8c.html#a4a0698581c5ce4fdb269f814fd438a5f">sfmt_get_min_array_size32</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the minimum size of array used for <b>fill_array32()</b> function. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>minimum size of array used for fill_array32() function. </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>.</p>

</div>
</div>
<a class="anchor" id="a22ebb5ab2cf7e28d2bcf21ffffcc7e39"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="_s_f_m_t_8c.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">sfmt_get_min_array_size64</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the minimum size of array used for <b>fill_array64()</b> function. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>minimum size of array used for fill_array64() function. </dd></dl>

<p>References <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>.</p>

</div>
</div>
<a class="anchor" id="a28f357a6d2a9cd74cec3c9d458e58475"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>init_key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>key_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function initializes the internal state array, with an array of 32-bit integers used as the seeds. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
    <tr><td class="paramname">init_key</td><td>the array of 32-bit integers, used as a seed. </td></tr>
    <tr><td class="paramname">key_length</td><td>the length of init_key. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="_s_f_m_t_8c.html#a4c995d884c911ea326dd7b5dac69df52">func1()</a>, <a class="el" href="_s_f_m_t_8c.html#abbf9b5910c59f1aebf5739f26d87f6a3">func2()</a>, <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>, <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, and <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>.</p>

</div>
</div>
<a class="anchor" id="a674d820db863265836ef9cb203aa4130"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">sfmt_init_gen_rand</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
          <td class="paramname"><em>sfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>seed</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function initializes the internal state array with a 32-bit integer seed. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
    <tr><td class="paramname">seed</td><td>a 32-bit integer used as the seed. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>, <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, and <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>.</p>

</div>
</div>
<a class="anchor" id="a29ed9f4537b9e617737dc32585636000"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">sfmt_to_real1</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>converts an unsigned 32-bit number to a double on [0,1]-real-interval. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1]-real-interval </dd></dl>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1()</a>.</p>

</div>
</div>
<a class="anchor" id="a4caa47d7e18ec69f30a56f9390fda3e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">sfmt_to_real2</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>converts an unsigned 32-bit integer to a double on [0,1)-real-interval. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1)-real-interval </dd></dl>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2()</a>.</p>

</div>
</div>
<a class="anchor" id="a48d93f237f52b2a149ab0d683527aa9c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">sfmt_to_real3</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>converts an unsigned 32-bit integer to a double on (0,1)-real-interval. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on (0,1)-real-interval </dd></dl>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3()</a>.</p>

</div>
</div>
<a class="anchor" id="abd5780d6ef5e9836a63e555e9f7da940"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53</a> </td>
          <td>(</td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>double on [0,1)-real-interval with 53-bit resolution. </dd></dl>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53()</a>, and <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix()</a>.</p>

</div>
</div>
<a class="anchor" id="a686d9c9d19ba29e0890abd2127f46339"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>generates a random number on [0,1) with 53-bit resolution from two 32 bit integers </p>

<p>References <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53()</a>.</p>

<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix()</a>.</p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Thu Jun 28 2012 10:34:10 for SFMT by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.0
</small></address>

</body>
</html>
